package net.rrkk.photoshow.service;

import net.rrkk.photoshow.entity.Photo;

import java.util.List;
import java.util.Optional;

public interface PhotoService {
    
    // 创建图片
    Photo createPhoto(Photo photo);
    
    // 根据ID获取图片
    Optional<Photo> getPhotoById(Long id);
    
    // 获取所有图片
    List<Photo> getAllPhotos();
    
    // 根据分类ID查找图片
    List<Photo> getPhotosByCategoryId(Long categoryId);
    
    // 根据标题搜索图片
    List<Photo> searchPhotosByTitle(String title);
    
    // 根据文件扩展名查找图片
    List<Photo> getPhotosByFileExtension(String fileExtension);
    
    // 获取公开图片
    List<Photo> getPublicPhotos();
    
    // 获取非公开图片
    List<Photo> getPrivatePhotos();
    
    // 更新图片
    Photo updatePhoto(Long id, Photo photoDetails);
    
    // 删除图片
    void deletePhoto(Long id);
    
    // 启用缓存
    void enableCache();
    
    // 禁用缓存
    void disableCache();
    
    // 清除缓存
    void clearCache();
}